//
//  ViewController.m
//  03-UIGestureRecognizer
//
//  Created by dllo on 16/7/18.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    // 手势识别器 UIGestureRecognizer 作为所有手势的基类
    // 分为7种
    // 1. 轻拍
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
     // 点击几次触发方法 默认为1
     tap.numberOfTapsRequired = 1;
     // 几个手指触发 （按option － alt） 默认为1
    tap.numberOfTouchesRequired = 1;
//    [self.view addGestureRecognizer:tap];
    // 2.长按
    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressAction:)];
    // 长按几秒后开始 默认是 0.5s
    longPress.minimumPressDuration = 1;
    // 默认10像素， 长按失败前， 最大移动距离
    longPress.allowableMovement = 10;
    
    [self.view addGestureRecognizer:longPress];
    // 3.轻扫
    UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeAction:)];
    //direction 可以设置多个， 前提 多个方向所触发的行为要相同
    // 如果多个枚举触发的行为不同， 需要创建多个轻扫的手势
    // 左右 与 上下 有冲突
    swipe.direction = UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight;
//    [self.view addGestureRecognizer:swipe];
   // 练习
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 355, 647)];
    imageView.image = [UIImage imageNamed:@"fart_2.jpg"];
//    将图片的交互打开
    imageView.userInteractionEnabled = YES;
//    [self.view addSubview:imageView];
    UISwipeGestureRecognizer *swipeChangImageRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeChangImageRight:)];
   // 按位枚举， 4个选项 －> 1 1 1 1
   // 全选的情况 1（3） 1（2） 1（1） 1（0）
    swipeChangImageRight.direction = UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight;
//    [imageView addGestureRecognizer:swipeChangImageRight];
    UISwipeGestureRecognizer *swipeChangImageLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeChangImageLeft:)];
    swipeChangImageLeft.direction = UISwipeGestureRecognizerDirectionLeft;
//    [imageView addGestureRecognizer:swipeChangImageLeft];
    // 4.平移
    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panAction:)];
    [imageView addGestureRecognizer:pan];
    //5. 捏合
    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchAction:)];
    [imageView addGestureRecognizer:pinch];
    //6. 旋转
    UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationAction:)];
    [imageView addGestureRecognizer:rotation];
    // 7.屏幕边缘手势
    UIScreenEdgePanGestureRecognizer *screenEdge = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(screenEdgeAction:)];
    screenEdge.edges = UIRectEdgeRight;
    [self.view addGestureRecognizer:screenEdge];
}
//轻拍
- (void)tapAction:(UITapGestureRecognizer *)tap {
    NSLog(@"轻拍");
}
//长按
- (void)longPressAction:(UILongPressGestureRecognizer *)longPress {
    if (longPress.state == UIGestureRecognizerStateBegan) {
        NSLog(@"长按开始");
    } else if (longPress.state == UIGestureRecognizerStateEnded) {
        NSLog(@"长按结束");
    }
    
}

//UIControl
// 轻扫
- (void)swipeAction:(UISwipeGestureRecognizer *)swipe {
     NSLog(@"轻扫");
}
- (void)swipeChangImageRight:(UISwipeGestureRecognizer *)swipe {
//    NSLog(@"改变图片");
//    NSLog(@"%ld", swipe.direction);
    
    if (swipe.direction & UISwipeGestureRecognizerDirectionLeft) {
//        NSLog(@"1111");
        UIImageView *imageView = (UIImageView *)swipe.view;
    imageView.image = [UIImage imageNamed:@"flower4.tiff"];
//    } else (swipe.direction == UISwipeGestureRecognizerDirectionLeft) {
//        UIImageView *imageView = (UIImageView *)swipe.view;
//        imageView.image = [UIImage imageNamed:@"fart_2.jpg"];
//    }
  }
}
- (void)swipeChangImageLeft:(UISwipeGestureRecognizer *)swipe {
    //    NSLog(@"改变图片");
    UIImageView *imageView = (UIImageView *)swipe.view;
    imageView.image = [UIImage imageNamed:@"fart_2.jpg"];
}
//平移
- (void)panAction:(UIPanGestureRecognizer *)pan {
//    NSLog(@"平移");
    if (pan.state == UIGestureRecognizerStateBegan) {
    // 平移开始        
    } else if (pan.state == UIGestureRecognizerStateChanged) {
        // 平移中
        // 平移手势， 根据其他View上移动的过程， 得到最终点
        CGPoint point = [pan translationInView:pan.view];
        // 根据point 使point.view移动
        pan.view.transform = CGAffineTransformTranslate(pan.view.transform, point.x, point.y);
        // pan移动点置空
        [pan setTranslation:CGPointZero inView:pan.view];
    } else if (pan.state == UIGestureRecognizerStateEnded) {
     // 平移结束
        pan.view.transform = CGAffineTransformIdentity;
    }
  
}
// 捏合
- (void) pinchAction:(UIPinchGestureRecognizer *)pinch {
    NSLog(@"%f", pinch.scale);
    pinch.view.transform = CGAffineTransformScale(pinch.view.transform, pinch.scale, pinch.scale);
    pinch.scale = 1;
}
// 旋转
- (void) rotationAction:(UIRotationGestureRecognizer *)rotation {
   // 转换中， 根据上次转换继续改变
    rotation.view.transform = CGAffineTransformRotate(rotation.view.transform, rotation.rotation);
   // 旋转的弧度置为0
    rotation.rotation = 0;
}
//屏幕边缘手势
- (void)screenEdgeAction:(UIScreenEdgePanGestureRecognizer *)screenEdge {
    NSLog(@"屏幕边缘手势");
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
